﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace WebView2Sharp.Interop
{
    public enum WEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT
    {
        WEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT_PNG,
        WEBVIEW2_CAPTURE_PREVIEW_IMAGE_FORMAT_JPEG
    }

    public enum WEBVIEW2_MOVE_FOCUS_REASON
    {
        WEBVIEW2_MOVE_FOCUS_REASON_PROGRAMMATIC,
        WEBVIEW2_MOVE_FOCUS_REASON_NEXT,
        WEBVIEW2_MOVE_FOCUS_REASON_PREVIOUS
    }

    public enum WEBVIEW2_PERMISSION_STATE
    {
        WEBVIEW2_PERMISSION_STATE_DEFAULT,
        WEBVIEW2_PERMISSION_STATE_ALLOW,
        WEBVIEW2_PERMISSION_STATE_DENY
    }

    public enum WEBVIEW2_PERMISSION_TYPE
    {
        WEBVIEW2_PERMISSION_TYPE_UNKNOWN_PERMISSION,
        WEBVIEW2_PERMISSION_TYPE_MICROPHONE,
        WEBVIEW2_PERMISSION_TYPE_CAMERA,
        WEBVIEW2_PERMISSION_TYPE_GEOLOCATION,
        WEBVIEW2_PERMISSION_TYPE_NOTIFICATIONS,
        WEBVIEW2_PERMISSION_TYPE_OTHER_SENSORS,
        WEBVIEW2_PERMISSION_TYPE_CLIPBOARD_READ
    }

    public enum WEBVIEW2_PROCESS_FAILED_KIND
    {
        WEBVIEW2_PROCESS_FAILED_KIND_BROWSER_PROCESS_EXITED,
        WEBVIEW2_PROCESS_FAILED_KIND_RENDER_PROCESS_EXITED,
        WEBVIEW2_PROCESS_FAILED_KIND_RENDER_PROCESS_UNRESPONSIVE
    }

    public enum WEBVIEW2_SCRIPT_DIALOG_KIND
    {
        WEBVIEW2_SCRIPT_DIALOG_KIND_ALERT,
        WEBVIEW2_SCRIPT_DIALOG_KIND_CONFIRM,
        WEBVIEW2_SCRIPT_DIALOG_KIND_PROMPT
    }

    public enum WEBVIEW2_WEB_ERROR_STATUS
    {
        WEBVIEW2_WEB_ERROR_STATUS_UNKNOWN,
        WEBVIEW2_WEB_ERROR_STATUS_CERTIFICATE_COMMON_NAME_IS_INCORRECT,
        WEBVIEW2_WEB_ERROR_STATUS_CERTIFICATE_EXPIRED,
        WEBVIEW2_WEB_ERROR_STATUS_CLIENT_CERTIFICATE_CONTAINS_ERRORS,
        WEBVIEW2_WEB_ERROR_STATUS_CERTIFICATE_REVOKED,
        WEBVIEW2_WEB_ERROR_STATUS_CERTIFICATE_IS_INVALID,
        WEBVIEW2_WEB_ERROR_STATUS_SERVER_UNREACHABLE,
        WEBVIEW2_WEB_ERROR_STATUS_TIMEOUT,
        WEBVIEW2_WEB_ERROR_STATUS_ERROR_HTTP_INVALID_SERVER_RESPONSE,
        WEBVIEW2_WEB_ERROR_STATUS_CONNECTION_ABORTED,
        WEBVIEW2_WEB_ERROR_STATUS_CONNECTION_RESET,
        WEBVIEW2_WEB_ERROR_STATUS_DISCONNECTED,
        WEBVIEW2_WEB_ERROR_STATUS_CANNOT_CONNECT,
        WEBVIEW2_WEB_ERROR_STATUS_HOST_NAME_NOT_RESOLVED,
        WEBVIEW2_WEB_ERROR_STATUS_OPERATION_CANCELED,
        WEBVIEW2_WEB_ERROR_STATUS_REDIRECT_FAILED,
        WEBVIEW2_WEB_ERROR_STATUS_UNEXPECTED_ERROR
    }

    public enum WEBVIEW2_WEB_RESOURCE_CONTEXT
    {
        WEBVIEW2_WEB_RESOURCE_CONTEXT_ALL,
        WEBVIEW2_WEB_RESOURCE_CONTEXT_DOCUMENT,
        WEBVIEW2_WEB_RESOURCE_CONTEXT_STYLESHEET,
        WEBVIEW2_WEB_RESOURCE_CONTEXT_IMAGE,
        WEBVIEW2_WEB_RESOURCE_CONTEXT_MEDIA,
        WEBVIEW2_WEB_RESOURCE_CONTEXT_FONT,
        WEBVIEW2_WEB_RESOURCE_CONTEXT_SCRIPT,
        WEBVIEW2_WEB_RESOURCE_CONTEXT_XML_HTTP_REQUEST,
        WEBVIEW2_WEB_RESOURCE_CONTEXT_FETCH
    }
}
